//
//  DrawView.m
//  雪花
//
//  Created by J on 16/2/23.
//  Copyright © 2016年 J. All rights reserved.
//

#import "DrawView.h"
static CGFloat _snowY = 0;
@implementation DrawView


- (void)drawRect:(CGRect)rect {
    // Drawing code
 
    //修改雪花y值
    
    UIImage* image = [UIImage imageNamed:@"雪花"];
    [image drawAtPoint:CGPointMake(50, _snowY)];
    _snowY+=10;
    
    if (_snowY>rect.size.height) {//如果超过view大小 清零
        _snowY = 0;
    }
    
    
    

    
}

//如果在绘图的时候要用到定时器
//NSTimer很少用于绘图，因为调度优先级比较低 并不会准时调用
- (void)awakeFromNib{//以后只要是绘制东西到view上 必须在drawRect方法里面 不管有没有手动获取到上下文因为有的系统方法会在底层封装获取上下文 不用我们手动获取
    
//    UIImage* image = [UIImage imageNamed:@"雪花"];
//    [image drawAtPoint:CGPointZero];
    
    //创建定时器
    //1s调用一次
//   NSTimer* timer =  [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timeChage) userInfo:nil repeats:YES];//这个方法只有在cpu 空闲的时候调用
    CADisplayLink* link = [CADisplayLink displayLinkWithTarget:self selector:@selector(timeChage) ];//每次屏幕刷新的时候调用 屏幕一般1s刷新60次
    
    //添加到主运行循环
    [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];


}


- (void)timeChage{
    [self setNeedsDisplay];//并不会马上调用drawRect 只会给当前控件添加刷新标记, 等下一次屏幕刷新的时候才回调用drawRect
    NSLog(@"%@",[NSDate date]);
    
}
@end
